入門WebAssembly 目次
目 次
著者紹介 iv
テクニカルレビューア紹介 iv
本書に寄せて viii
謝辞 ix
はじめに x
本書のサンプルコード xiii
第1 章WebAssembly とは1
1.2 WebAssembly を使う理由 3
1.5 組み込み環境 12
1.6 今がチャンス 19
第2 章WAT の基礎21
2.1 これ以上ないほど単純なモジュール 21
2.2 WebAssembly でのhello world! 22
2.3 WAT の変数 27
2.4 条件付きロジック 37
2.5 ループとブロック 40
2.6 まとめ 46
第3 章関数とテーブル47
3.1 WAT から関数を呼び出す状況 47
3.2 is_prime 関数を作成する 48
3.3 インポートする関数を宣言する 56
3.4 外部関数の呼び出しがパフォーマンスに与える影響 58
3.5 関数テーブル 62
3.6 まとめ 71
vi 目 次
第4 章低レベルのビット操作73
4.1 2 進数、10 進数、16 進数 73
4.2 整数と浮動小数点数の演算 74
4.3 上位ビットと下位ビット 80
4.4 ビット演算 82
4.5 まとめ 88
第5 章WebAssembly の文字列89
5.1 ASCII とUnicode 89
5.2 線形メモリ内の文字列 90
5.3 まとめ 116
第6 章線形メモリ117
6.1 WebAssembly の線形メモリ 117
6.2 JavaScript のメモリオブジェクト 123
6.3 衝突検出 128
6.4 まとめ 141
第7 章Web アプリケーション143
7.1 DOM 144
7.2 シンプルなNode サーバーをセットアップする 144
7.3 1 つ目のWebAssembly Web アプリケーション 146
7.4 16 進数文字列と2 進数文字列 152
7.5 まとめ 161
第8 章キャンバスの操作163
8.1 キャンバスでのレンダリング 163
8.2 描画データを管理するWAT モジュール 170
8.3 まとめ 191
第9 章パフォーマンスの最適化193
9.1 プロファイラを使う 193
9.2 wasm-opt 204
目 次vii
9.3 パフォーマンスを改善するための戦略 208
9.4 WebAssembly アプリケーションとJavaScript アプリケーションを比較
する 216
9.5 WAT を手動で最適化する 219
9.6 パフォーマンスを記録する 219
9.7 benchmark.js を使ったさらに高度なテスト 224
9.8 ‒print-bytecode を使ってWebAssembly とJavaScript を比較する 231
9.9 まとめ 234
第10 章WebAssembly のデバッグ235
10.1 コンソールからデバッグする 235
10.2 アラートを使う 245
10.3 スタックトレース 245
10.4 Firefox のデバッガー 251
10.5 Chrome のデバッガー 256
10.6 まとめ 258
第11 章AssemblyScript 259
11.1 AssemblyScript のコマンドラインインターフェイス 260
11.2 AssemblyScript でのhello world! 261
11.3 AssemblyScript でのOOP 270
11.4 まとめ 283
第12 章おわりに285
索 引 287